<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
  // Object.is 和 === 的不同
  // NaN和NaN比较，=== 结果false
  // NaN和NaN比较，Object.is 结果true
  // +0和-0比较，=== 结果true
  // +0和-0比较，Object.is 结果false
  function is(x, y) {
    if (x === y) {
      return x !== 0 || y !== 0 || 1 / x === 1 / y;
    } else {
      return x !== x && y !== y
    }
  }

  function test(arr) {
    arr.forEach(([x, y]) => {
      console.log('Object.is', x, y, Object.is(x, y))
      console.log('is', y, y, is(x, y))
    })
  }

  test([
    [+0, -0],
    [NaN, NaN]
  ])
</script>
</body>
</html>